<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>

<script>

/*
// 作用域：
// 域：空间、范围、区域……
// 作用：读、写

	script		全局变量、全局函数
		自上而下
	
	函数
		由里到外
	
	{}

	浏览器：
		“JS解析器”
			1）“找一些东西”	：var  function 参数
			
							a = ...
									所有的变量，在正式运行代码之前，都提前赋了一个值：未定义
							fn1 = function fn1(){ alert(2); }
									所有的函数，在正式运行代码之前，都是整个函数块

							JS 的预解析

						遇到重名的：只留一个
							变量和函数重名了，就只留下函数
									
			2）逐行解读代码：
						表达式：= + - * / % ++ -- ! 参数……
						
						表达式可以修改预解析的值！
			



alert(a);					// function a (){ alert(4); }
var a = 1;
alert(a);					// 1
function a (){ alert(2); }
alert(a);					// 1
var a = 3;		
alert(a);					// 3
function a (){ alert(4); }
alert(a);					// 3

alert( typeof a );
// a();									// 报错
*/

/*
var a = 1;
function fn1(){
	alert(a);						// undefined
	var a = 2;
}
fn1();
alert(a);							// 1

var a = 1;
function fn1(){
	alert(a);						// 1
	a = 2;
}
fn1();
alert(a);							// 2
*/

/*
var a = 1;
function fn1(a){
	alert(a);						// undefined
	a = 2;
}
fn1();
alert(a);							// 1


var a = 1;
function fn1(a){
	alert(a);						// 1
	a = 2;
}
fn1(a);
alert(a);							// 1
*/
</script>

</head>

<body>
</body>
</html>
